// 状态类型
export enum QrcodeStatusEnum {
  MY = 1,      // 我的
  TEAM = 2     // 团队
}

// 活码类型
export enum QrcodeTypeEnum {
  CREATE_AND_USE = 1,  // 我创建的/我使用的
  PROMOTE = 2  // 我推广的
}

// 活码Tab类型
export enum QrcodeTabEnum {
  STAFF = 1,   // 员工活码
  GROUP = 2    // 客户群活码
}

// 筛选条件接口
export interface QrcodeFilter {
  name?: string                 // 活码名称
  type?: QrcodeTypeEnum        // 活码类型
}

// 基础活码信息
interface BaseQrcode {
  id: number                   // 活码ID
  name: string                 // 活码名称
  createTime: string          // 创建时间
  creator: string             // 创建人
  qrcodeImg: string          // 二维码图片
  todayScanCount: number     // 今日扫码数
  totalScanCount: number     // 总扫码数
}

// 员工活码信息
export interface StaffQrcode extends BaseQrcode {
  type: QrcodeTypeEnum                // 活码类型
  users: Array<{                      // 使用成员
    userId: string
    userName: string
  }>
  creatorWorkTime: {                  // 创建人工作时间
    start: string
    end: string
  }
  userWorkTime: Array<{              // 使用成员工作时间
    userId: string
    start: string
    end: string
  }>
}

// 群活码信息
export interface GroupQrcode extends BaseQrcode {
  // 群活码特有字段
}

// 列表请求参数
export interface QrcodeListParams {
  page: number                        // 页码
  pageSize: number                    // 每页数量
  status: QrcodeStatusEnum           // 当前状态
  tab: QrcodeTabEnum                 // 当前tab
  filter: QrcodeFilter               // 筛选条件
}

// 列表响应数据
export interface QrcodeListResponse {
  data: {
    list: Array<StaffQrcode | GroupQrcode>
    total: number
  }
}

// 页面状态
export interface QrcodePageState {
  status: QrcodeStatusEnum           // 当前状态：我的/团队
  currentTab: QrcodeTabEnum          // 当前tab：员工/群
  filter: QrcodeFilter               // 筛选条件
  list: Array<StaffQrcode | GroupQrcode>  // 列表数据
}
